package vista;

import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.WindowListener;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;

public class InterfazGraficaCategoria 
{
	private JButton btnGuardar,btnModificar,btnEliminar,btnCancelar,btnSalir,
                    btnSiguiente,btnAtras,btnPrimero,btnUltimo;
    private JTextField txtCodCategoria,txtNombreCorto,txtNombreLargo;
    private Ventana ventana;
    
    public InterfazGraficaCategoria()
    {
    	ImageIcon imgCategoria= new ImageIcon(getClass().getResource("imagenes" + File.separator + "categorias.png"));
    	ImageIcon imgSiguiente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "siguiente.gif"));
    	ImageIcon imgAtras= new ImageIcon(getClass().getResource("imagenes" + File.separator + "atras.gif"));
    	ImageIcon imgPrimero= new ImageIcon(getClass().getResource("imagenes" + File.separator + "primero.gif"));
    	ImageIcon imgUltimo= new ImageIcon(getClass().getResource("imagenes" + File.separator + "ultimo.gif"));
    	
        ImageIcon imgGuardar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "guardar.png"));
        ImageIcon imgModificar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "modificar.png"));
        ImageIcon imgEliminar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "eliminar.png"));
        ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
        ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
    
    
        FabricaAbstractaVentana fabricaVentanas= FabricaAbstractaVentana.getInstance();
		ventana= fabricaVentanas.crearVentanaIndependiente();
		
		ventana.asignarTitulo("Categoria");
		
		JLabel lblTitulo= new JLabel("CATEGORIAS");
	    JLabel lblCodCategoria= new JLabel("Codigo:");
	    JLabel lblNombreCorto= new JLabel("Nombre Corto:");
	    JLabel lblNombreLargo= new JLabel("Nombre Largo:");        
	          
	    JLabel lblLogo= new JLabel(imgCategoria);
	        
	    JToolBar barraHerramientas= new JToolBar();
	           
	    /*Botones de Navegacion*/
	    JToolBar barraNavegacion= new JToolBar();
	        
	    barraNavegacion.setFloatable(false);
	    barraNavegacion.setOpaque(false);
	    barraNavegacion.setBorderPainted(false);
	        
	    btnSiguiente= new JButton(imgSiguiente);
	    btnAtras= new JButton(imgAtras);
	    btnPrimero= new JButton(imgPrimero);
	    btnUltimo= new JButton(imgUltimo);
	        
	    btnSiguiente.setActionCommand("Siguiente");
	    btnAtras.setActionCommand("Atras");
	    btnPrimero.setActionCommand("Primero");
	    btnUltimo.setActionCommand("Ultimo");
	        
	    btnPrimero.setToolTipText("Primero");
	    btnAtras.setToolTipText("Atras");
	    btnSiguiente.setToolTipText("Siguiente");
	    btnUltimo.setToolTipText("Ultimo");
	        
	    barraNavegacion.add(btnPrimero);
	    barraNavegacion.add(btnAtras);
	    barraNavegacion.add(btnSiguiente);
	    barraNavegacion.add(btnUltimo);
	    /********Fin de botones de Navegacion*******/
	       
	    btnGuardar= new JButton("GUARDAR",imgGuardar);
	    btnModificar= new JButton("MODIFICAR",imgModificar);
	    btnEliminar= new JButton("ELIMINAR",imgEliminar);
	    btnCancelar= new JButton("CANCELAR",imgCancelar);
	    btnSalir= new JButton("SALIR",imgSalir);
	            
	    txtCodCategoria= new JTextField();
	    txtNombreCorto= new JTextField();
	    txtNombreLargo= new JTextField();        
	        
	    txtCodCategoria.setName("txtCodCategoria");    
	    txtNombreCorto.setName("txtNombreCorto");
	    txtNombreLargo.setName("txtNombreLargo");        
	        

	    barraHerramientas.setFloatable(false);
	    barraHerramientas.setOpaque(false);
	    barraHerramientas.setBorderPainted(false);
	        
	    btnGuardar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnGuardar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnGuardar.setOpaque(false);
	    btnGuardar.setBorderPainted(false);

	    btnModificar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnModificar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnModificar.setOpaque(false);
	    btnModificar.setBorderPainted(false);

	    btnEliminar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnEliminar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnEliminar.setOpaque(false);
	    btnEliminar.setBorderPainted(false);

	    btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnCancelar.setOpaque(false);
	    btnCancelar.setBorderPainted(false);

	    btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnSalir.setOpaque(false);
	    btnSalir.setBorderPainted(false);
	        
	    barraHerramientas.add(btnGuardar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnModificar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnEliminar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnCancelar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnSalir);
	        
	    lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));
	    lblCodCategoria.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	    lblNombreCorto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	    lblNombreLargo.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	        
	    ventana.agregarComponente(lblLogo, 10, 50, 230, 190);
	    ventana.agregarComponente(lblCodCategoria,250,75,100,20);
        ventana.agregarComponente(lblNombreCorto,250, 122, 120, 20);
        ventana.agregarComponente(lblNombreLargo,250, 180, 120, 20);
        ventana.agregarComponente(txtCodCategoria,395, 71, 139, 25);
	    ventana.agregarComponente(txtNombreCorto,395, 122, 240, 25);          
        ventana.agregarComponente(txtNombreLargo,395,180,240,25);
        ventana.agregarComponente(barraNavegacion,240, 240, 200, 30);
        ventana.agregarComponente(barraHerramientas,108, 300, 500, 90);
	    ventana.agregarComponente(lblTitulo,260, 10,180, 30);
	        
        ventana.asignarTamanio(660,440);
    }
    
    public void addListener(ActionListener escuchador)
    {
    	btnGuardar.addActionListener(escuchador);
        btnEliminar.addActionListener(escuchador);
        btnModificar.addActionListener(escuchador);
        btnCancelar.addActionListener(escuchador);
        btnSalir.addActionListener(escuchador);
     
        btnSiguiente.addActionListener(escuchador);
        btnAtras.addActionListener(escuchador);
        btnPrimero.addActionListener(escuchador);
        btnUltimo.addActionListener(escuchador);
    }
    
    public void addListener(WindowListener escuchador)
    {
         ventana.addListener(escuchador);
    }
    
    public void actualizarInfo(String codigo,String nombreCorto,
            String nombreLargo)
    {

         txtCodCategoria.setText(codigo);
         txtNombreCorto.setText(nombreCorto);
         txtNombreLargo.setText(nombreLargo);    		
    }
    
    public void addListener(KeyListener escuchador)
    {
         txtCodCategoria.addKeyListener(escuchador);
         txtNombreCorto.addKeyListener(escuchador);
         txtNombreLargo.addKeyListener(escuchador);         
    }
    
    public void addListener(FocusListener escuchador)
    {
    	txtCodCategoria.addFocusListener(escuchador);
    	
    	
    }
    
    public void habilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(true);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(true);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(true);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(true);
    	
    }
    
    public void deshabilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(false);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(false);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(false);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(false);
    	
    }
    
    public void habilitarNavegacion()
    {
    	btnSiguiente.setEnabled(true);
    	btnAtras.setEnabled(true);
    	btnPrimero.setEnabled(true);
    	btnUltimo.setEnabled(true);
    }
    
    public void deshabilitarNavegacion()
    {
    	btnSiguiente.setEnabled(false);
    	btnAtras.setEnabled(false);
    	btnPrimero.setEnabled(false);
    	btnUltimo.setEnabled(false);
    }
    
    public void limpiarTextos()
    {
    	txtNombreCorto.setText("");
    	txtNombreLargo.setText("");    	
    }
      
    public String getCodCategoria()
    {
    	return txtCodCategoria.getText();
    	
    
    }
    
    public String getNombreCorto()
    {
    	return txtNombreCorto.getText();
    }
    
    public String getNombreLargo()
    {
    	return txtNombreLargo.getText();
    }

    
    public void visualizarVentana()
	{
		ventana.visualizar();
	}
	
	public void descargarMemoria()
	{
		ventana.descargarMemoria();
	}
	
	
}
